#ifndef _COMPONENT_MANAGER_H_
#define _COMPONENT_MANAGER_H_

#include "Component.h"

class ComponentManager
{

    static ComponentManager* _instance;
    ComponentManager();
public:
    ~ComponentManager();
    static ComponentManager* getInstance();

    void addComponent(int entity, int type);
    //void addComponent(int entity, Component* c);

    void deleteComponent(int entity, int type);
    void deleteComponentList(int entity);

    bool hasComponent(int entity, int type);
    Component* getComponent(int entity, int type);

private:
    std::map<int, std::vector<Component*>> _componentList;
    std::map<int, std::vector<Component*>>::iterator _iterator;
};

#endif // _COMPONENT_MANAGER_H_
